using System;
using System.IO;
using System.Reflection;
using SvgToFontConverter.Services;

namespace SvgToFontConverter
{
    public class TestExtraction
    {
        public static void TestSvgPathExtraction()
        {
            Console.WriteLine("=== SVG路径提取测试 ===");
            
            var service = new FontelloCliService();
            var svgFolder = @"E:\字体辅助生成器\示例SVG";
            
            if (!Directory.Exists(svgFolder))
            {
                Console.WriteLine($"SVG文件夹不存在: {svgFolder}");
                return;
            }
            
            var svgFiles = Directory.GetFiles(svgFolder, "*.svg");
            Console.WriteLine($"找到 {svgFiles.Length} 个SVG文件\n");
            
            foreach (var svgFile in svgFiles)
            {
                var fileName = Path.GetFileName(svgFile);
                Console.WriteLine($"处理文件: {fileName}");
                
                try
                {
                    var svgContent = File.ReadAllText(svgFile);
                    Console.WriteLine($"SVG内容长度: {svgContent.Length}");
                    Console.WriteLine($"SVG内容前100字符: {svgContent.Substring(0, Math.Min(100, svgContent.Length))}");
                    
                    // 使用反射调用私有方法ExtractSvgPath
                    var method = typeof(FontelloCliService).GetMethod("ExtractSvgPath", 
                        BindingFlags.NonPublic | BindingFlags.Instance);
                    
                    if (method != null)
                    {
                        var result = method.Invoke(service, new object[] { svgContent }) as string;
                        Console.WriteLine($"提取的路径: {result}");
                        
                        if (string.IsNullOrEmpty(result) || result == "M100 100h800v800h-800z")
                        {
                            Console.WriteLine("⚠️ 警告: 使用了默认路径，可能提取失败");
                        }
                        else
                        {
                            Console.WriteLine("✅ 成功提取SVG路径");
                        }
                    }
                    else
                    {
                        Console.WriteLine("❌ 无法找到ExtractSvgPath方法");
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"❌ 处理文件时出错: {ex.Message}");
                }
                
                Console.WriteLine(new string('-', 60));
            }
            
            Console.WriteLine("\n测试完成!");
        }
    }
}